using System;
using System.Collections.Specialized;
using SecuBat.Crawling.Forms;

namespace SecuBat.AttackPlugin
{
	/// <summary>
	/// Summary description for IAttack.
	/// </summary>
	public interface IAttack
	{
		// Attack values which get registered into database
		int Id {get;}
		int AttackerRunId {get;}
		int AttackFormId {get;}
		int PluginId {get;}
		NameValueCollection AttackParameters {get;}
		int ResponseCode {get;}
		String ResponseHtml {get;}
		DateTime AttackTime {get;}
		TimeSpan ResponseDuration {get;}
		WebForm AttackForm {get;}
		IAnalysis MainAnalysis {get;}
		FormParameter SubmitButton {get;}
		ICommonData Data {get;}

		void Execute();
		void InitializeAttack();
		void DoAttack();
		void Register();
		void AnalyzeAttack();
	}
}
